"""
Axiom Boot Framework

一个类似Java Spring Boot的企业级Python Web框架，提供完整的开发基础设施和最佳实践。
"""

__version__ = "0.1.0"

# ==============================================================================
# 核心导出 (Core Exports)
# ==============================================================================

# 应用入口
from axiom_boot.di import (
    AxiomApplication,
    service,
    controller,
    mapper,
    autowired,
    order,
    ApplicationProcessor,
    get,
    post,
    put,
    delete,
    patch,
    head,
    options,
)

# 异常类
from axiom_boot.core.exceptions import (
    BusinessException,
    NotFoundException,
    PermissionDenied,
    Unauthorized,
    BadRequest,
)

# 日志
from axiom_boot.logging.setup import get_logger

# ==============================================================================
# 数据库导出 (Database Exports)
# ==============================================================================
from axiom_boot.database.base_model import BaseModel
from axiom_boot.database.base_mapper import BaseMapper
from axiom_boot.database.base_service import BaseService

# ==============================================================================
# API 导出 (API Exports)
# ==============================================================================
from axiom_boot.api.controller import BaseController

# ==============================================================================
# 认证导出 (Auth Exports)
# ==============================================================================
from axiom_boot.auth.models import Token
from axiom_boot.auth.grant_handlers.base_user_authenticator import BaseUserAuthenticator
from axiom_boot.auth.services.oauth_service import OAuthService
from axiom_boot.auth.services.token_service import TokenService

# ==============================================================================
# 缓存导出 (Cache Exports)
# ==============================================================================
from axiom_boot.cache.service import CacheService


# ==============================================================================
# __all__ 定义
# ==============================================================================
__all__ = [
    # app
    "AxiomApplication",
    
    # di
    "service",
    "controller",
    "mapper",
    "autowired",
    "order",
    "ApplicationProcessor",

    # route decorators
    "get",
    "post",
    "put",
    "delete",
    "patch",
    "head",
    "options",

    # exceptions
    "BusinessException",
    "NotFoundException",
    "PermissionDenied",
    "Unauthorized",
    "BadRequest",

    # logger
    "get_logger",

    # database
    "BaseModel",
    "BaseMapper",
    "BaseService",

    # api
    "BaseController",

    # auth
    "Token",
    "BaseUserAuthenticator",
    "OAuthService",
    "TokenService",

    # cache
    "CacheService"
] 
